บทท หล กการแก ป ญหาด วยคอมพ วเตอร
ประกอบด วย 4 ข นตอน 1. การว เคราะห และกาหนดรายละเอ ยดของป ญหา 2. การวางแผนในการแก ป ญหา 3. การดาเน นการแก ป ญหา 4. การตรวจสอบและปร บปร ง ว เคราะห ป ญหาหร อความต องการ ออกแบบช นงาน ลงม อผล ตช นงาน ตรวจสอบและปร บปร งแก ไข
1. การว เคราะห และกาหนดรายละเอ ยดของป ญหา ว เคราะห ป ญหาหร อความต องการ ข นตอนแรกของการแก ป ญหา จะต องเร มต นด วยการทาความเข าใจก บป ญหาให ถ องแท เพ อว เคราะห เง อนไขของป ญหาให ช ดเจน รวมไปถ งข อม ล ท จาเป นในการแก ป ญหา การว เคราะห และกาหนดรายละเอ ยดของป ญหา ม องค ประกอบ ด งน 1. ระบ ข อม ลออก : คาตอบ 2. ระบ ข อม ลเข า : เง อนไข / ข อม ลเร มต น 3. รายละเอ ยดของป ญหา : ความต องการของป ญหา
ควรเร มจากการพ จารณาส งท ต องการหาแล วพยายามหาว ธ การ เพ อให ได ความส มพ นธ ระหว างส งท ต องการหา 2. การวางแผนในการแก ป ญหา ออกแบบช นงาน ก บข อม ลท ม แล วพ จารณาว าความส มพ นธ น น สามารถหาคาตอบได หร อไม ถ าไม ได แสดงว า ต องหาข อม ลเพ มหร อต องหาความส มพ นธ ร ปแบบอ นต อไป เม อได แนวทางแก ป ญหาจ งวางแผนในการแก ป ญหาอย างเป นข นตอน
ลงม อผล ตช นงาน เป นข นตอนการใช โปรแกรมประย กต หร อเข ยนโปรแกรมข นเอง ในข นตอนน ต องค าน งถ งความย ดหย นของโปรแกรมท ออกแบบด วย เพ อให สามารถรองร บการเปล ยนแปลงหร อ 3. การดาเน นการแก ป ญหา โปรแกรมควรต องรองร บการขยายต ว ท อาจเก ดข นในอนาคตด วย และระหว างดาเน นการแก ป ญหา อาจพบว าม ว ธ การท ด กว า หร อว ธ ท ค ดไว แก ป ญหาไม ได ก ต องปร บเปล ยนให เหมาะสม www.bangpaeschool.ac.th
ตรวจสอบและปร บปร งแก ไข ข นตอนน เป นการตรวจสอบเพ อให แน ใจว า ว ธ การแก ป ญหา รวมท งโปรแกรมท พ ฒนาข นให ผลล พธ ถ กต อง หล งจากท โปรแกรมทางานได ผลตามท ต องการแล ว อาจต องม การ ปร บปร งให ว ธ การในการแก ป ญหาม ประส ทธ ภาพท ส ด ในข นตอนการปร บปร งน ควรจะม ท งการปร บปร งข นตอน การทางานของว ธ การแก ป ญหา ให ด ข นและปร บโปรแกรมท เข ยนข น 4. การตรวจสอบและปร บปร ง
ส ญล กษณ และความหมายของผ งงาน ส ญล กษณ ช อเร ยก ความหมาย เร มต นและจบ จ ดเร มต นและจ ดส นส ดของผ งงาน การนาข อม ลเข า การปฏ บ ต งาน การต ดส นใจ ท ศทาง จ ดท จะนาข อม ลเข าจากภายนอกหร อออกส ภายนอก โดยไม ระบ ชน ดของอ ปกรณ จ ดท ม การปฏ บ ต งานอย างใดอย างหน ง (ข นกระบวนการ) จ ดท จะต องเล อกปฏ บ ต งานอย างใดอย างหน ง (การ ต ดส นใจหร อการเล อก) ท ศทางข นตอนการดาเน นงานว งจะปฏ บ ต ต อเน องก น ตามห วล กศรช
ส ญล กษณ และความหมายของผ งงาน ส ญล กษณ ช อเร ยก ความหมาย การนาข อม ลออก การนาข อม ลออก การนาข อม ลเข า จ ดเช อมต อในหน า เด ยวก น จ ดท จะนาข อม ลออกส ภายนอก โดยระบ อ ปกรณ ค อ เคร องพ มพ จ ดท จะนาข อม ลออกส ภายนอก โดยระบ อ ปกรณ ค อ หน าจอ จ ดท จะนาข อม ลเข าจากภายนอก โดยระบ อ ปกรณ ค อ แป นพ มพ จ ดเช อมต อของผ งงาน (หน ากระดาษเด ยวก นแต ทาให ด ง ายข น) จ ดเช อมต อหน ากระดาษ จ ดเช อมต อของผ งงาน (คนละหน ากระดาษ)
โครงสร างการโปรแกรม โครงสร างม อย 3 ร ปแบบ ค อ 1. โครงสร างผ งงานแบบลาด บ (Sequence Flowchart) 2. โครงสร างผ งงานแบบเล อกทา (Selection Flowchart) 3. โครงสร างผ งงานแบบวนซ า (Repeation Flowchart)
โครงสร างแบบลาด บ โปรแกรมท ท างานเป น ข นตอนเพ อแก ป ญหา จะท างาน ตามคาส งท เข ยนไว ตามลาด บ ต งแต คาส งแรกไปจนถ งคาส งส ดท าย โครงสร างแบบเร ยงล าด บ เม อเข ยนเป นผ งงาน ม กระบวนการ ทางานพ นฐานอย 3 ชน ด 1. การคานวณ 2. การร บข อม ลเข า 3. การส งข อม ลออก 1. เร มต น 2. อ านค าข อม ลมาเก บไว ท ต วแปร A, B 3. คานวณค าแล วเก บไว ท ต วแปรX 4. แสดงค า X 5. จบการทางาน ต วอย างโครงสร างผ งงานแบบลาด บ
Flow Chart แบบลาด บ เร มต น ป อนความส ง, ความยาวฐาน พ นท สามเหล ยม = 0.5 * ฐาน * ส ง พ นท สามเหล ยม จบ
โครงสร างแบบเล อกทา ป ญหาบางอย างต องการการต ดส นใจ เพ อเล อกว าจะใช ว ธ การใด โดย ต องม การตรวจสอบว าเง อนไขท ใช ในการต ดส นใจว าเป นจร งหร อเท จ ถ าเป นจร งจะ ไปเล อกทาคาส งช ดหน ง แต ถ าเป นเท จจะไปเล อกทาค าส งอ กช ดหน ง ซ งคาส ง เหล าน นจะประกอบด วยโครงสร างแบบล าด บน นเอง โครงสร างแบบเล อกทา ประกอบด วยส ญล กษณ การต ดส นใจ 1 ส ญล กษณ การเล อกม ทางออก 2 ทาง ในการเล อกแบบม 2 ทางเล อกน จะม ทางออกจากส ญล กษณ การต ดส นใจ 2 ทาง ค อใช หร อ ไม ใช เท าน น ภาษาซ (ง30243) : C Program
แบบ 1 แบบ 2 ผ งงานแบบ 1, 2 การตรวจสอบเง อนไขถ าเป นจร งจะอย ด านซ ายหร ออย ด านขวาก ได หร อถ าเง อนไข เป นเท จ จะอย ด านซ ายหร อขวาก ได เช นก น แบบ 3 แบบ 4 ผ งงานแบบ 3, 4 ผลการตรวจสอบเง อนไข ถ าเป นจร ง อาจม ข นตอนการทางานเพ ยงทางเด ยว ถ าเง อนไข เป นเท จ อาจจะไม ม ข นตอนการทางานต อไป
แบบ 5 แบบ 6 ผ งงานแบบ 5 แบบ 6 ต วอย างโครงสร างผ งงานแบบเล อกทาในร ปแบบต าง ๆ (อาจจะ เป นโครงสร างผ งงานแบบลาด บหร อแบบเล อกท า หร อแบบทาซ าก ได )
ต วอย าง Flowchart แบบ 1 ทางเล อก เร มต น ป อนความกว าง, ความยาว พ นท ส เหล ยม = กว าง * ยาว กว าง = ยาว No Yes ส เหล ยมจ ต ร ส พ นท ส เหล ยม จบ
ต วอย าง Flowchart แบบ 2 ทางเล อก เร มต น ป อนความกว าง, ความยาว พ นท ส เหล ยม = กว าง * ยาว No ส เหล ยมผ นผ า กว าง = ยาว Yes ส เหล ยมจ ต ร ส พ นท ส เหล ยม จบ
เร มต น ป อนคะแนน ต วอย าง Flowchart แบบหลายทางเล อก Yes คะแนน >= 80 No grade = A Yes คะแนน >= 70 No grade = B Yes คะแนน >= 55 No grade = C Yes คะแนน >= 40 No grade = D grade = F grade จบ
ต วอย าง Flowchart แบบ switch, case เร มต น ป อนคะแนน คะแนน 80..100 70..79 55..69 40..54 0..39 grade = A grade = B grade = C grade = D grade = F grade จบ
โครงสร างแบบวนซ า ม ล กษณะเป นรอบ (Loop อ านว า ล ป) จะท างานแบบเด ยวก นซ าไปเร อย ๆ ในขณะท ย ง เป นไปตามเง อนไขหร อเง อนไขเป นจร ง จนกระท ง เง อนไขเป นเท จจ งทางานอ นต อไป ม โครงสร างอย หลาย ร ปแบบด วยก น ค อ
1. โครงสร างการวนซ าแบบ While (ทาในขณะท ) เป นการตรวจสอบเง อนไขก อน หากเง อนไขเป นจร งจะ ทาซ าต อไป จนกระท งเง อนไขเป นเท จ จะออกจากข นตอนการทาซ า อธ บายข นตอนการท างาน 1. เร มต นการทางาน 2. กาหนดค า X เท าก บ 1 3. ในขณะท X < 10 ทา 4. คานวณค า X เท า X + 1 5. แสดงค า X 6. จบการทางาน
ต วอย าง Flowchart แบบวนล ป While Start N = 1 Sum = 0 N <=10 No Yes Sum=Sum+N Print Sum N = N+1 End
2. โครงสร างการวนซ าแบบ Do...While (ทาจนกระท ง) การท าซ าแบบ Do...While ค านวณก อนการตรวจสอบเง อนไข จนกระท งเง อนไขเป นจร ง จะท าซ าอย างน อย 1 คร ง แล วจ งตรวจสอบ เง อนไข หากเง อนไขเป นเท จจะท าซ าต อไป จนกระท งเม อเง อนไขเป น จร ง จ งออกจากการทาซ า อธ บายเป นข นตอนการทางาน 1. เร มต นการทางาน 2. ร บค า X 3. แสดงค า X 4. ทาซ าจนกระท ง A=999 5. ถ าไม ใช ย อนกล บไปทาซ า 6. ถ า ใช จบการทางาน
ต วอย าง Flowchart แบบวนล ป Do...While Start N = 1 Sum = 0 Sum=Sum+N N = N+1 No N > 10 Yes Print Sum End
3. โครงสร างการวนซ าแบบ For (กาหนดรอบการทางาน) เป นการส งให ม การท างานต อไปจนกว าจะครบรอบ ซ ง สามารถให ม การกระท าของโปรแกรมโดยการวนรอบอย ตลอดเวลา ตามการก าหนดของโปรแกรม ซ งสามารถก าหนดค าเร มต นและค า ส ดท าย หร อข นของรอบได โดยม ร ปแบบด งน
ต วอย าง Flowchart แบบวนล ป For-Loop Start Sum = 0 For N =1 to 10 Sum=Sum+N Print Sum End
หล กการแก ป ญหาด วยคอมพ วเตอร